package com.xk857.system.mapper;

import com.xk857.entities.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xk857.system.mapper.provider.SysUserProvider;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 用户信息表 Mapper 接口
 *
 * @author CV大魔王
 * @since 2021-02-25
 */
public interface SysUserMapper extends BaseMapper<SysUser> {


    /**
     * 根据用户id查询此用户拥有的角色ids
     *
     * @param id 用户id
     * @return 角色 id 集合
     */
    @Select("SELECT role_id FROM sys_user_role WHERE user_id = #{id}")
    List<String> findRoleIdsById(@Param("id") String id);


    /**
     * 通过用户 id 删除用户角色关系表数据
     *
     * @param userId 用户id
     * @return 逻辑值 是否删除成功
     */
    @Delete("DELETE FROM sys_user_role WHERE user_id = #{userId}")
    boolean deleteUserRoleByUserId(@Param("userId") String userId);


    /**
     * 新增用户角色关系数据到 sys_user_role
     *
     * @param userId  用户id
     * @param roleIds 角色ids集合
     * @return 逻辑值 是否添加成功
     */
    @InsertProvider(type = SysUserProvider.class, method = "saveUserRole")
    boolean saveUserRole(@Param("userId") String userId, @Param("roleIds") List<String> roleIds);


}
